package com.carleasoft.mps.adu.business.role.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.carleasoft.mps.core.tree.DataBizTreeVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface AuthorityDataDao extends BaseMapper<DataBizTreeVo> {
    /**
     * 查询用户类型
     *
     * @param userCode
     * @return int
     */
    List<String> selectUserTypeCode(@Param("userCode") String userCode);

    /**
     * 查询部门类型
     *
     * @param deptCodes
     * @return int
     */
    List<String> selectDeptTypeCodes(@Param("deptCodes") List<String> deptCodes);
    /**
     * 查询组织分类
     *
     * @param orgCode
     * @return int
     */

    List<String> selectOrgTypeCodes(@Param("typeCode") String typeCode, @Param("orgCode") String orgCode);

    /**
     * 查询部门全路径
     *
     * @param deptCode
     * @return int
     */
    List<String> selectAllDeptCode(@Param("deptCode") String deptCode, @Param("userCode") String userCode);

    /**
     * 查询职位
     *
     * @param posCode
     * @return int
     */
    List<String> selectAllPosCode(@Param("posCode") String posCode, @Param("userCode") String userCode);

    /**
     * 查询职位
     *
     * @param posCode
     * @return int
     */
    List<String> selectAllPosGroupCodes(@Param("posCode") String posCode, @Param("userCode") String userCode);

    /**
     * 查组织分类code
     *
     * @param
     * @return List<AuthorityMenuEntity>
     */
    List<String> selectOrgTypeCodesByOrgType(@Param("orgTypeCode") String orgTypeCode);

    /**
     * 组织code
     *
     * @param orgTypeCodes
     * @return List<AuthorityMenuEntity>
     */
    List<String> selectOrgCodesByOrgType(@Param("orgTypeCodes") List<String> orgTypeCodes,@Param("isInc") Boolean isInc);

    /**
     * 组织code,去除修改中或者已经在表里被删除的code
     *
     * @param orgTypeCodes
     * @return List<AuthorityMenuEntity>
     */
    List<String> selectOrgCodesByOrgCodes(@Param("orgCodes") List<String> orgTypeCodes,@Param("isInc") Boolean isInc);

    /**
     * 部门编码
     *
     * @param orgCodes
     * @return List<AuthorityMenuEntity>
     */
    List<String> selectDeptCodesByOrgCodes(@Param("orgCodes") List<String> orgCodes,@Param("isInc") Boolean isInc);


    /**
     * 部门编码
     *
     * @param deptCode
     * @return List<AuthorityMenuEntity>
     */
    List<String> selectDeptCodesByDeptCode(@Param("deptCode") String deptCode,@Param("isInc") Boolean isInc);

    /**
     * 查询树列表
     * @param orgCodes
     * @return List<AuthorityMenuEntity>
     */

    List<DataBizTreeVo> selectTreeByCodes(@Param("orgTypeCodes") List<String> orgTypeCodes,@Param("orgCodes") List<String> orgCodes,@Param("deptCodes") List<String> deptCodes);
}
